<?php
namespace app\common\service\admin;

use app\common\dao\AdminDao;
use app\common\dao\LogDao;
use app\common\service\BaseService;

/**
 * 管理员业务 修改
 */
class AdminUpdateService
{
    /**
     * 修改
     *
     * @param integer $id 管理员ID
     * @param array $param 表单内容
     * @return array
     */
    public function updateAdminInfo($id, $param)
    {
        if (empty($id)) {
            return errorful("ID不能为空");
        }

        // 是否存在管理员
        $row = (new AdminDao())->where([
            ["id", "=", $id],
        ])->find();
        if (empty($row)) {
            return errorful("不存在指定管理员");
        }

        $data = [];
        if (!empty($param['username'])) {
            $data['username'] = trim($param['username']);
        }
        if (!empty($param['nickname'])) {
            $data['nickname'] = trim($param['nickname']);
        }
        if (!empty($param['password'])) {
            $data['password'] = sha1($param['password']);
        }
        if (!empty($param['auth_name'])) {
            $data['auth'] = trim($param['auth_name']);
        }

        // 修改
        $result = (new AdminDao())->update($data, [
            "id" => $id,
        ]);
        if ($result) {
            // 日志
            LogDao::add("管理员修改", 1, "修改成功", json_encode($param, JSON_UNESCAPED_UNICODE));

            return successful("修改成功", $result->toArray());
        } else {
            // 日志
            LogDao::add("管理员修改", 0, "修改出错", json_encode($param, JSON_UNESCAPED_UNICODE));

            return errorful("修改出现错误，请重新提交");
        }
    }
}
